package collectionFrame.Demo7_LinkedListExample;

import java.util.Deque;
import java.util.LinkedList;

public class ChooseKing {

    static Deque<String> list_monkey = new LinkedList<>();

    /**
     * 初始化15只猴子
     */
    public static void initMonkey(){
        for (int i = 1; i < 16; i++) {
            list_monkey.add(i+"号猴子");
        }
    }

    public static void monkeyChooseKing(int num){

        //初始化列表的索引为0
        int index = 0;

        //只要剩余猴子的数量大于1，就可以继续淘汰
        while(list_monkey.size()>1){

            //如果第 index+1 个猴子能被 num 整除，淘汰
            if (++index % num==0) {
                //移除当前元素，并返回被移除的元素内容
                System.out.println(list_monkey.poll()+"被淘汰");
                System.out.println(list_monkey);
            }else{
                //把不能被整除的元素转移到当前列表的最后一个位置
                list_monkey.add(list_monkey.poll());
            }
        }

        System.out.println(list_monkey.peek()+"获胜");

    }

    public static void main(String[] args) {
        ChooseKing.initMonkey();
//        System.out.println(list_monkey);
        ChooseKing.monkeyChooseKing(7);
    }

}
